# 作业：
#     1、写一个清理日志的代码
#         1、删除3天前的日志文件
#         2、删除文件内容为空的日志文件
#         3、如果当天的日志文件为空，不删除
#
#     2、有一个存着学生成绩的文件，里面存的是json串，json串读起来特别不直观，需要你写代码把它都写到excel中，并计算出总分和平均分，json格式如下
#      http://www.nnzhp.cn/archives/433  第8题

# 思路：
# 1、遍历logs目录下的所有文件
# 2、通过文件名判断日期是今天之前的删除
# 3、通过文件内容判断，为空的文件进行删除
import os,time

def str_to_timezone(str_time=None, format="%Y-%m-%d"):
    '''
    这个函数是格式化好的时间，转时间戳的,默认返回当前时间戳
    :param str_time: 格式化好的时间
    :param format: 时间格式
    :return:
    '''
    if str_time:
        t2 = time.strptime(str_time, format)
        return int(time.mktime(t2))
    else:
        return int(time.time())

for cur_path,dirs,files in os.walk("/Users/wangxiaoyan60/PycharmProjects/wangxiaoyan-homework/day6/logs"): #获取目录下所有的文件
    for file in files:   #遍历文件名
        full_path=os.path.join(cur_path,file)  #获取文件绝对路径
        file_time=file.split("_")[1]
        file_time1 = file_time.split(".")[0]
        if str_to_timezone(time.strftime("%Y-%m-%d"))-str_to_timezone(file_time1)>=259200: #判断文件时间是否在三天前，如果是就删除
            os.remove(full_path)

        if os.path.getsize(full_path)==0 and str_to_timezone(file_time1)!=str_to_timezone(time.strftime("%Y-%m-%d")):#判断文件是否为空且日期不是今天就删除
            os.remove(full_path)
        else:
            continue
